package org.xlx.xlx_oa.meet.convertor;

import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.xlx.xlx_oa.common.BaseConvertor;
import org.xlx.xlx_oa.meet.domain.MeetApply;
import org.xlx.xlx_oa.meet.domain.MeetFacility;
import org.xlx.xlx_oa.meet.domain.MeetRoom;
import org.xlx.xlx_oa.meet.domain.dto.MeetFacilityDto;
import org.xlx.xlx_oa.meet.domain.dto.MeetRoomArrangeDto;
import org.xlx.xlx_oa.meet.domain.dto.MeetRoomDto;
import org.xlx.xlx_oa.meet.domain.vo.MeetApplyVo;
import org.xlx.xlx_oa.meet.domain.vo.MeetFacilityVo;
import org.xlx.xlx_oa.meet.domain.vo.MeetRoomVo;

import java.util.List;

@Mapper
public interface MeetConvertor extends BaseConvertor {
    MeetConvertor INSTANCE = Mappers.getMapper(MeetConvertor.class);

    MeetRoom convertVoToDomain(MeetRoomVo roomVo);

    MeetRoomDto convertToDtoDomain(MeetRoom room);

    List<MeetRoomDto> convertToListDtoDomain(List<MeetRoom> rooms);

    MeetFacility convertVoToMeetFacility(MeetFacilityVo facilityVo);

    MeetFacilityDto convertToFacilityDto(MeetFacility facility);

    List<MeetFacilityDto> convertToListFacilityDto(List<MeetFacility> list);


    List<MeetFacility> convertVoToListMeetFacility(List<MeetFacilityVo> list);

    MeetApply convertVoToMeetApply(MeetApplyVo applyVo);

    MeetApply convertToApply(MeetApply apply);

    MeetRoomArrangeDto convertDomainToArrangeDto(MeetApply meetApply);

    List<MeetRoomArrangeDto> convertDomainToListArrangeDto(List<MeetApply> applyList);
}
